Estaremos construindo um conjunto de funções para modelar um simples sistema de contabilidade de armazém, que mantém o estoque para um conjunto de mercadorias, que representaremos por strings, por exemplo, 'a'
, 'b'
, 'c'
. Portanto, o armazém pode ter 10 unidades de 'a'
, 20 de 'b'
e 0 de 'c'
.
Haverá transações no armazém que aumentam a quantidade de uma mercadoria, por exemplo, ('receive', 'a', 10)
que aumenta o total de 'a'
em 10, ou ('ship', 'a', 10)
que diminui o total de 'a'
em 10.
Representaremos os totais para as várias mercadorias usando um dicionário onde as chaves são os nomes das mercadorias e os valores são os totais atuais das mercadorias.
Escreva uma função warehouse_process
que receba dois argumentos:
Certifique-se de lidar com o caso de uma transação receive
quando a mercadoria não estiver presente no dicionário; simplesmente trate o total atual para aquela mercadoria como zero. Se não houver estoque suficiente para completar uma transação ship
, transfira todas as unidades disponíveis e imprima a string 'not enough'
(por exemplo, se 10 unidades de 'a'
foram requisitadas, mas há apenas 8 unidades no dicionário, o dicionário deve ser atualizado de modo que 'a'
mapeia a 0 e a mensagem not enough
deve ser impressa).
Escreva a definição da classe Warehouse
que possui os seguintes métodos:
__init__
, que inicializa um dicionário vazio para conter o inventárioprocess
, que processa uma transação, conforme descrito no problema anteriorlookup
, que retorna o suprimento total atual para uma determinada mercadoria (0 se não estiver presente)
Uma interação típica pode ser assim:w = Warehouse()
w.process(('receive', 'a', 10))
w.process(('ship', 'a', 7))
print(w.lookup('a')) # imprime 3
print(w.lookup('b')) # imprime 0
warehouse_process
para que possa fazer uso dela.Quando estiver pronto (depois de ter simulado manualmente e testado em sua própria máquina e estiver convencido de que seu programa fará a coisa certa), faça upload do seu arquivo Python no Problema 4.1 no Gradescope. Lembre de nomear seu arquivo p4_1.py
.